program trojkat;
uses crt;
var xa,ya,xb,yb,xc,yc,a,b,c:real;

function dlugosc (x1,y1,x2,y2:real):real;
begin dlugosc:=sqrt(sqr(x2-x1)+sqr(y2-y1)); end;

function sprawdz(a,b,c:real):boolean;
begin
 if (a+b>c) and (b+c>a) and (a+c>b) then
 sprawdz:=true
 else
 sprawdz:=false;
end;

function pole(a,b,c:real):real;
var p:real;
begin
p:=(a+b+c)/2;
pole:=sqrt(p*(p-a)*(p-b)*(p-c));
end;

function promien_o(a,b,c:real):real;
begin
promien_o:=a*b*c/(4*pole(a,b,c));
end;

function promien_w(a,b,c:real):real;
begin
promien_w:=2*pole(a,b,c)/(a+b+c);
end;

function srednia(x1,y1:real):real;
begin
srednia:=(x1+y1)/2;
end;

function wys_x(x,b,c:real):real;
begin
wys_x:=2*pole(x,b,c)/x;
end;

BEGIN
clrscr;
write('podaj xA=');readln(xa);
write('podaj yA=');readln(ya);
write('podaj xB=');readln(xb);
write('podaj yB=');readln(yb);
write('podaj xC=');readln(xc);
write('podaj yC=');readln(yc);
a:=dlugosc(xb,yb,xc,yc);
b:=dlugosc(xa,ya,xc,yc);
c:=dlugosc(xa,ya,xb,yb);
if (sprawdz(a,b,c)) then
 begin
  clrscr;
  writeln('a=',a:5:2);
  writeln('b=',b:5:2);
  writeln('c=',c:5:2);
  writeln('P=',pole(a,b,c):5:2);
  writeln('R=',promien_o(a,b,c):5:2);
  writeln('r=',promien_w(a,b,c):5:2);
  writeln('hA=',dlugosc(srednia(xc,xb),srednia(yc,yb),xa,ya):5:2);
  writeln('hB=',dlugosc(srednia(xa,xc),srednia(ya,yc),xb,yb):5:2);
  writeln('hC=',dlugosc(srednia(xa,xb),srednia(ya,yb),xc,yc):5:2);
 end
 else write('blad_: wspolliniowosc');
 readkey;
END.